ITP001 Axioms: ITP095^7.ax


%------------------------------------------------------------------------------
% File     : ITP095^7 : TPTP v8.2.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 syntactic export, chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau19] Gauthier (2019), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : blast.ax [Gau19]
%          : HL4095^7.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   80 (  16 unt;  55 typ;   0 def)
%            Number of atoms       :  117 (  23 equ;   4 cnn)
%            Maximal formula atoms :    5 (   1 avg)
%            Number of connectives :  897 (   4   ~;   3   |;   8   &; 864   @)
%                                         (  12 <=>;   6  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   13 (   6 avg; 864 nst)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :  126 ( 126   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   55 (  53 usr;   5 con; 0-6 aty)
%            Number of variables   :  147 (  24   ^  92   !;   1   ?; 147   :)
%                                         (  30  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tyop_2Ebool_2Eitself,type,
    tyop_2Ebool_2Eitself: $tType > $tType ).

thf(tyop_2Efcp_2Ecart,type,
    tyop_2Efcp_2Ecart: $tType > $tType > $tType ).

thf(tyop_2Elist_2Elist,type,
    tyop_2Elist_2Elist: $tType > $tType ).

thf(tyop_2Emin_2Ebool,type,
    tyop_2Emin_2Ebool: $tType ).

thf(tyop_2Emin_2Efun,type,
    tyop_2Emin_2Efun: $tType > $tType > $tType ).

thf(tyop_2Enum_2Enum,type,
    tyop_2Enum_2Enum: $tType ).

thf(c_2Ebool_2E_21,type,
    c_2Ebool_2E_21: 
      !>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).

thf(c_2Earithmetic_2E_2B,type,
    c_2Earithmetic_2E_2B: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2E_2D,type,
    c_2Earithmetic_2E_2D: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebool_2E_2F_5C,type,
    c_2Ebool_2E_2F_5C: $o > $o > $o ).

thf(c_2Enum_2E0,type,
    c_2Enum_2E0: tyop_2Enum_2Enum ).

thf(c_2Eprim__rec_2E_3C,type,
    c_2Eprim__rec_2E_3C: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).

thf(c_2Earithmetic_2E_3C_3D,type,
    c_2Earithmetic_2E_3C_3D: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).

thf(c_2Emin_2E_3D,type,
    c_2Emin_2E_3D: 
      !>[A_27a: $tType] : ( A_27a > A_27a > $o ) ).

thf(c_2Emin_2E_3D_3D_3E,type,
    c_2Emin_2E_3D_3D_3E: $o > $o > $o ).

thf(c_2Ebool_2E_3F,type,
    c_2Ebool_2E_3F: 
      !>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).

thf(c_2Eblast_2EBCARRY,type,
    c_2Eblast_2EBCARRY: tyop_2Enum_2Enum > ( tyop_2Enum_2Enum > $o ) > ( tyop_2Enum_2Enum > $o ) > $o > $o ).

thf(c_2Ebit_2EBIT,type,
    c_2Ebit_2EBIT: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $o ).

thf(c_2Earithmetic_2EBIT1,type,
    c_2Earithmetic_2EBIT1: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2EBIT2,type,
    c_2Earithmetic_2EBIT2: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebit_2EBITS,type,
    c_2Ebit_2EBITS: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Eblast_2EBSUM,type,
    c_2Eblast_2EBSUM: tyop_2Enum_2Enum > ( tyop_2Enum_2Enum > $o ) > ( tyop_2Enum_2Enum > $o ) > $o > $o ).

thf(c_2Ebool_2ECOND,type,
    c_2Ebool_2ECOND: 
      !>[A_27a: $tType] : ( $o > A_27a > A_27a > A_27a ) ).

thf(c_2Erich__list_2ECOUNT__LIST,type,
    c_2Erich__list_2ECOUNT__LIST: tyop_2Enum_2Enum > ( tyop_2Elist_2Elist @ tyop_2Enum_2Enum ) ).

thf(c_2Ebool_2EF,type,
    c_2Ebool_2EF: $o ).

thf(c_2Efcp_2EFCP,type,
    c_2Efcp_2EFCP: 
      !>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Enum_2Enum > A_27a ) > ( tyop_2Efcp_2Ecart @ A_27a @ A_27b ) ) ).

thf(c_2Elist_2EFOLDL,type,
    c_2Elist_2EFOLDL: 
      !>[A_27a: $tType,A_27b: $tType] : ( ( A_27b > A_27a > A_27b ) > A_27b > ( tyop_2Elist_2Elist @ A_27a ) > A_27b ) ).

thf(c_2Ecombin_2EK,type,
    c_2Ecombin_2EK: 
      !>[A_27a: $tType,A_27b: $tType] : ( A_27a > A_27b > A_27a ) ).

thf(c_2Ebit_2ELOG2,type,
    c_2Ebit_2ELOG2: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2EMOD,type,
    c_2Earithmetic_2EMOD: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Earithmetic_2ENUMERAL,type,
    c_2Earithmetic_2ENUMERAL: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Enum_2ESUC,type,
    c_2Enum_2ESUC: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).

thf(c_2Ebool_2ET,type,
    c_2Ebool_2ET: $o ).

thf(c_2Earithmetic_2EZERO,type,
    c_2Earithmetic_2EZERO: tyop_2Enum_2Enum ).

thf(c_2Ebool_2E_5C_2F,type,
    c_2Ebool_2E_5C_2F: $o > $o > $o ).

thf(c_2Eblast_2Ebcarry,type,
    c_2Eblast_2Ebcarry: $o > $o > $o > $o ).

thf(c_2Eblast_2Ebsum,type,
    c_2Eblast_2Ebsum: $o > $o > $o > $o ).

thf(c_2Efcp_2Edimindex,type,
    c_2Efcp_2Edimindex: 
      !>[A_27a: $tType] : ( ( tyop_2Ebool_2Eitself @ A_27a ) > tyop_2Enum_2Enum ) ).

thf(c_2Efcp_2Efcp__index,type,
    c_2Efcp_2Efcp__index: 
      !>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Efcp_2Ecart @ A_27a @ A_27b ) > tyop_2Enum_2Enum > A_27a ) ).

thf(c_2Ewords_2En2w,type,
    c_2Ewords_2En2w: 
      !>[A_27a: $tType] : ( tyop_2Enum_2Enum > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ecombin_2Eo,type,
    c_2Ecombin_2Eo: 
      !>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( A_27c > A_27b ) > ( A_27a > A_27c ) > A_27a > A_27b ) ).

thf(c_2Ebool_2Ethe__value,type,
    c_2Ebool_2Ethe__value: 
      !>[A_27a: $tType] : ( tyop_2Ebool_2Eitself @ A_27a ) ).

thf(c_2Ewords_2Eword__add,type,
    c_2Ewords_2Eword__add: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__asr,type,
    c_2Ewords_2Eword__asr: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > tyop_2Enum_2Enum > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__asr__bv,type,
    c_2Ewords_2Eword__asr__bv: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__bits,type,
    c_2Ewords_2Eword__bits: 
      !>[A_27a: $tType] : ( tyop_2Enum_2Enum > tyop_2Enum_2Enum > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__lo,type,
    c_2Ewords_2Eword__lo: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > $o ) ).

thf(c_2Ewords_2Eword__lsl__bv,type,
    c_2Ewords_2Eword__lsl__bv: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__lsr__bv,type,
    c_2Ewords_2Eword__lsr__bv: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__mod,type,
    c_2Ewords_2Eword__mod: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__mul,type,
    c_2Ewords_2Eword__mul: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__rol__bv,type,
    c_2Ewords_2Eword__rol__bv: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__ror__bv,type,
    c_2Ewords_2Eword__ror__bv: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ewords_2Eword__sub,type,
    c_2Ewords_2Eword__sub: 
      !>[A_27a: $tType] : ( ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) > ( tyop_2Efcp_2Ecart @ $o @ A_27a ) ) ).

thf(c_2Ebool_2E_7E,type,
    c_2Ebool_2E_7E: $o > $o ).

thf(logicdef_2E_2F_5C,axiom,
    ! [V0: $o,V1: $o] :
      ( ( c_2Ebool_2E_2F_5C @ V0 @ V1 )
    <=> ( V0
        & V1 ) ) ).

thf(logicdef_2E_5C_2F,axiom,
    ! [V0: $o,V1: $o] :
      ( ( c_2Ebool_2E_5C_2F @ V0 @ V1 )
    <=> ( V0
        | V1 ) ) ).

thf(logicdef_2E_7E,axiom,
    ! [V0: $o] :
      ( ( c_2Ebool_2E_7E @ V0 )
    <=> ( (~) @ V0 ) ) ).

thf(logicdef_2E_3D_3D_3E,axiom,
    ! [V0: $o,V1: $o] :
      ( ( c_2Emin_2E_3D_3D_3E @ V0 @ V1 )
    <=> ( V0
       => V1 ) ) ).

thf(logicdef_2E_3D,axiom,
    ! [A_27a: $tType,V0: A_27a,V1: A_27a] :
      ( ( c_2Emin_2E_3D @ A_27a @ V0 @ V1 )
    <=> ( V0 = V1 ) ) ).

thf(quantdef_2E_21,axiom,
    ! [A_27a: $tType,V0f: A_27a > $o] :
      ( ( c_2Ebool_2E_21 @ A_27a @ V0f )
    <=> ! [V1x: A_27a] : ( V0f @ V1x ) ) ).

thf(quantdef_2E_3F,axiom,
    ! [A_27a: $tType,V0f: A_27a > $o] :
      ( ( c_2Ebool_2E_3F @ A_27a @ V0f )
    <=> ? [V1x: A_27a] : ( V0f @ V1x ) ) ).

thf(thm_2Eblast_2Ebcarry__def,axiom,
    ! [V0x: $o,V1y: $o,V2c: $o] :
      ( ( c_2Eblast_2Ebcarry @ V0x @ V1y @ V2c )
    <=> ( ( V0x
          & V1y )
        | ( ( V0x
            | V1y )
          & V2c ) ) ) ).

thf(thm_2Eblast_2EBCARRY__def,axiom,
    ( ! [V0x: tyop_2Enum_2Enum > $o,V1y: tyop_2Enum_2Enum > $o,V2c: $o] :
        ( ( c_2Eblast_2EBCARRY @ c_2Enum_2E0 @ V0x @ V1y @ V2c )
        = V2c )
    & ! [V3i: tyop_2Enum_2Enum,V4x: tyop_2Enum_2Enum > $o,V5y: tyop_2Enum_2Enum > $o,V6c: $o] :
        ( ( c_2Eblast_2EBCARRY @ ( c_2Enum_2ESUC @ V3i ) @ V4x @ V5y @ V6c )
        = ( c_2Eblast_2Ebcarry @ ( V4x @ V3i ) @ ( V5y @ V3i ) @ ( c_2Eblast_2EBCARRY @ V3i @ V4x @ V5y @ V6c ) ) ) ) ).

thf(thm_2Eblast_2Ebsum__def,axiom,
    ! [V0x: $o,V1y: $o,V2c: $o] :
      ( ( c_2Eblast_2Ebsum @ V0x @ V1y @ V2c )
    <=> ( ( V0x
        <=> ( (~) @ V1y ) )
      <=> ( (~) @ V2c ) ) ) ).

thf(thm_2Eblast_2EBSUM__def,axiom,
    ! [V0i: tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum > $o,V2y: tyop_2Enum_2Enum > $o,V3c: $o] :
      ( ( c_2Eblast_2EBSUM @ V0i @ V1x @ V2y @ V3c )
      = ( c_2Eblast_2Ebsum @ ( V1x @ V0i ) @ ( V2y @ V0i ) @ ( c_2Eblast_2EBCARRY @ V0i @ V1x @ V2y @ V3c ) ) ) ).

thf(thm_2Eblast_2EBCARRY__def__compute,axiom,
    ( ! [V0x: tyop_2Enum_2Enum > $o,V1y: tyop_2Enum_2Enum > $o,V2c: $o] :
        ( ( c_2Eblast_2EBCARRY @ c_2Enum_2E0 @ V0x @ V1y @ V2c )
        = V2c )
    & ! [V3i: tyop_2Enum_2Enum,V4x: tyop_2Enum_2Enum > $o,V5y: tyop_2Enum_2Enum > $o,V6c: $o] :
        ( ( c_2Eblast_2EBCARRY @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3i ) ) @ V4x @ V5y @ V6c )
        = ( c_2Eblast_2Ebcarry @ ( V4x @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3i ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) @ ( V5y @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3i ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) @ ( c_2Eblast_2EBCARRY @ ( c_2Earithmetic_2E_2D @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V3i ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ V4x @ V5y @ V6c ) ) )
    & ! [V7i: tyop_2Enum_2Enum,V8x: tyop_2Enum_2Enum > $o,V9y: tyop_2Enum_2Enum > $o,V10c: $o] :
        ( ( c_2Eblast_2EBCARRY @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT2 @ V7i ) ) @ V8x @ V9y @ V10c )
        = ( c_2Eblast_2Ebcarry @ ( V8x @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V7i ) ) ) @ ( V9y @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V7i ) ) ) @ ( c_2Eblast_2EBCARRY @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ V7i ) ) @ V8x @ V9y @ V10c ) ) ) ) ).

thf(thm_2Eblast_2EBCARRY__LEM,axiom,
    ! [V0i: tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum,V2y: tyop_2Enum_2Enum,V3c: $o] :
      ( ( c_2Eprim__rec_2E_3C @ c_2Enum_2E0 @ V0i )
     => ( ( c_2Eblast_2EBCARRY @ V0i
          @ ^ [V4i: tyop_2Enum_2Enum] : ( c_2Ebit_2EBIT @ V4i @ V1x )
          @ ^ [V5i: tyop_2Enum_2Enum] : ( c_2Ebit_2EBIT @ V5i @ V2y )
          @ V3c )
        = ( c_2Ebit_2EBIT @ V0i @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2E_2B @ ( c_2Ebit_2EBITS @ ( c_2Earithmetic_2E_2D @ V0i @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ c_2Enum_2E0 @ V1x ) @ ( c_2Ebit_2EBITS @ ( c_2Earithmetic_2E_2D @ V0i @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ c_2Enum_2E0 @ V2y ) ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ V3c @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ c_2Enum_2E0 ) ) ) ) ) ).

thf(thm_2Eblast_2EBCARRY__EQ,axiom,
    ! [V0n: tyop_2Enum_2Enum,V1c: $o,V2x1: tyop_2Enum_2Enum > $o,V3x2: tyop_2Enum_2Enum > $o,V4y1: tyop_2Enum_2Enum > $o,V5y2: tyop_2Enum_2Enum > $o] :
      ( ! [V6i: tyop_2Enum_2Enum] :
          ( ( c_2Eprim__rec_2E_3C @ V6i @ V0n )
         => ( ( ( V2x1 @ V6i )
              = ( V3x2 @ V6i ) )
            & ( ( V4y1 @ V6i )
              = ( V5y2 @ V6i ) ) ) )
     => ( ( c_2Eblast_2EBCARRY @ V0n @ V2x1 @ V4y1 @ V1c )
        = ( c_2Eblast_2EBCARRY @ V0n @ V3x2 @ V5y2 @ V1c ) ) ) ).

thf(thm_2Eblast_2EBSUM__EQ,axiom,
    ! [V0n: tyop_2Enum_2Enum,V1c: $o,V2x1: tyop_2Enum_2Enum > $o,V3x2: tyop_2Enum_2Enum > $o,V4y1: tyop_2Enum_2Enum > $o,V5y2: tyop_2Enum_2Enum > $o] :
      ( ! [V6i: tyop_2Enum_2Enum] :
          ( ( c_2Earithmetic_2E_3C_3D @ V6i @ V0n )
         => ( ( ( V2x1 @ V6i )
              = ( V3x2 @ V6i ) )
            & ( ( V4y1 @ V6i )
              = ( V5y2 @ V6i ) ) ) )
     => ( ( c_2Eblast_2EBSUM @ V0n @ V2x1 @ V4y1 @ V1c )
        = ( c_2Eblast_2EBSUM @ V0n @ V3x2 @ V5y2 @ V1c ) ) ) ).

thf(thm_2Eblast_2EBSUM__LEM,axiom,
    ! [V0i: tyop_2Enum_2Enum,V1x: tyop_2Enum_2Enum,V2y: tyop_2Enum_2Enum,V3c: $o] :
      ( ( c_2Eblast_2EBSUM @ V0i
        @ ^ [V4i: tyop_2Enum_2Enum] : ( c_2Ebit_2EBIT @ V4i @ V1x )
        @ ^ [V5i: tyop_2Enum_2Enum] : ( c_2Ebit_2EBIT @ V5i @ V2y )
        @ V3c )
      = ( c_2Ebit_2EBIT @ V0i @ ( c_2Earithmetic_2E_2B @ ( c_2Earithmetic_2E_2B @ V1x @ V2y ) @ ( c_2Ebool_2ECOND @ tyop_2Enum_2Enum @ V3c @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) @ c_2Enum_2E0 ) ) ) ) ).

thf(thm_2Eblast_2EBITWISE__ADD,axiom,
    ! [A_27a: $tType,V0x: tyop_2Efcp_2Ecart @ $o @ A_27a,V1y: tyop_2Efcp_2Ecart @ $o @ A_27a] :
      ( ( c_2Ewords_2Eword__add @ A_27a @ V0x @ V1y )
      = ( c_2Efcp_2EFCP @ $o @ A_27a
        @ ^ [V2i: tyop_2Enum_2Enum] : ( c_2Eblast_2EBSUM @ V2i @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0x ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V1y ) @ c_2Ebool_2EF ) ) ) ).

thf(thm_2Eblast_2EBITWISE__SUB,axiom,
    ! [A_27a: $tType,V0x: tyop_2Efcp_2Ecart @ $o @ A_27a,V1y: tyop_2Efcp_2Ecart @ $o @ A_27a] :
      ( ( c_2Ewords_2Eword__sub @ A_27a @ V0x @ V1y )
      = ( c_2Efcp_2EFCP @ $o @ A_27a
        @ ^ [V2i: tyop_2Enum_2Enum] : ( c_2Eblast_2EBSUM @ V2i @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0x ) @ ( c_2Ecombin_2Eo @ tyop_2Enum_2Enum @ $o @ $o @ c_2Ebool_2E_7E @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V1y ) ) @ c_2Ebool_2ET ) ) ) ).

thf(thm_2Eblast_2EBITWISE__LO,axiom,
    ! [A_27a: $tType,V0x: tyop_2Efcp_2Ecart @ $o @ A_27a,V1y: tyop_2Efcp_2Ecart @ $o @ A_27a] :
      ( ( c_2Ewords_2Eword__lo @ A_27a @ V0x @ V1y )
    <=> ( (~) @ ( c_2Eblast_2EBCARRY @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0x ) @ ( c_2Ecombin_2Eo @ tyop_2Enum_2Enum @ $o @ $o @ c_2Ebool_2E_7E @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V1y ) ) @ c_2Ebool_2ET ) ) ) ).

thf(thm_2Eblast_2EBITWISE__MUL,axiom,
    ! [A_27a: $tType,V0w: tyop_2Efcp_2Ecart @ $o @ A_27a,V1m: tyop_2Efcp_2Ecart @ $o @ A_27a] :
      ( ( c_2Ewords_2Eword__mul @ A_27a @ V0w @ V1m )
      = ( c_2Elist_2EFOLDL @ tyop_2Enum_2Enum @ ( tyop_2Efcp_2Ecart @ $o @ A_27a )
        @ ^ [V2a: tyop_2Efcp_2Ecart @ $o @ A_27a,V3j: tyop_2Enum_2Enum] :
            ( c_2Ewords_2Eword__add @ A_27a @ V2a
            @ ( c_2Efcp_2EFCP @ $o @ A_27a
              @ ^ [V4i: tyop_2Enum_2Enum] : ( c_2Ebool_2E_2F_5C @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0w @ V3j ) @ ( c_2Ebool_2E_2F_5C @ ( c_2Earithmetic_2E_3C_3D @ V3j @ V4i ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V1m @ ( c_2Earithmetic_2E_2D @ V4i @ V3j ) ) ) ) ) )
        @ ( c_2Ewords_2En2w @ A_27a @ c_2Enum_2E0 )
        @ ( c_2Erich__list_2ECOUNT__LIST @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) ) ) ).

thf(thm_2Eblast_2Eword__lsl__bv__expand,axiom,
    ! [A_27a: $tType,V0w: tyop_2Efcp_2Ecart @ $o @ A_27a,V1m: tyop_2Efcp_2Ecart @ $o @ A_27a] :
      ( ( c_2Ewords_2Eword__lsl__bv @ A_27a @ V0w @ V1m )
      = ( c_2Ebool_2ECOND @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Efcp_2EFCP @ $o @ A_27a @ ( c_2Ecombin_2EK @ $o @ tyop_2Enum_2Enum @ ( c_2Ebool_2E_2F_5C @ ( c_2Ebool_2E_7E @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V1m @ c_2Enum_2E0 ) ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0w @ c_2Enum_2E0 ) ) ) )
        @ ( c_2Efcp_2EFCP @ $o @ A_27a
          @ ^ [V2k: tyop_2Enum_2Enum] :
              ( c_2Ebool_2E_2F_5C
              @ ( c_2Elist_2EFOLDL @ tyop_2Enum_2Enum @ $o
                @ ^ [V3a: $o,V4j: tyop_2Enum_2Enum] : ( c_2Ebool_2E_5C_2F @ V3a @ ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Ewords_2Eword__bits @ A_27a @ ( c_2Ebit_2ELOG2 @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) @ c_2Enum_2E0 @ V1m ) @ ( c_2Ewords_2En2w @ A_27a @ V4j ) ) @ ( c_2Ebool_2E_2F_5C @ ( c_2Earithmetic_2E_3C_3D @ V4j @ V2k ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0w @ ( c_2Earithmetic_2E_2D @ V2k @ V4j ) ) ) ) )
                @ c_2Ebool_2EF
                @ ( c_2Erich__list_2ECOUNT__LIST @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) )
              @ ( c_2Emin_2E_3D @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Ewords_2Eword__bits @ A_27a @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2E_2B @ ( c_2Ebit_2ELOG2 @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ V1m ) @ ( c_2Ewords_2En2w @ A_27a @ c_2Enum_2E0 ) ) ) ) ) ) ).

thf(thm_2Eblast_2Eword__lsr__bv__expand,axiom,
    ! [A_27a: $tType,V0w: tyop_2Efcp_2Ecart @ $o @ A_27a,V1m: tyop_2Efcp_2Ecart @ $o @ A_27a] :
      ( ( c_2Ewords_2Eword__lsr__bv @ A_27a @ V0w @ V1m )
      = ( c_2Ebool_2ECOND @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Efcp_2EFCP @ $o @ A_27a @ ( c_2Ecombin_2EK @ $o @ tyop_2Enum_2Enum @ ( c_2Ebool_2E_2F_5C @ ( c_2Ebool_2E_7E @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V1m @ c_2Enum_2E0 ) ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0w @ c_2Enum_2E0 ) ) ) )
        @ ( c_2Efcp_2EFCP @ $o @ A_27a
          @ ^ [V2k: tyop_2Enum_2Enum] :
              ( c_2Ebool_2E_2F_5C
              @ ( c_2Elist_2EFOLDL @ tyop_2Enum_2Enum @ $o
                @ ^ [V3a: $o,V4j: tyop_2Enum_2Enum] : ( c_2Ebool_2E_5C_2F @ V3a @ ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Ewords_2Eword__bits @ A_27a @ ( c_2Ebit_2ELOG2 @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) @ c_2Enum_2E0 @ V1m ) @ ( c_2Ewords_2En2w @ A_27a @ V4j ) ) @ ( c_2Ebool_2E_2F_5C @ ( c_2Eprim__rec_2E_3C @ ( c_2Earithmetic_2E_2B @ V2k @ V4j ) @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0w @ ( c_2Earithmetic_2E_2B @ V2k @ V4j ) ) ) ) )
                @ c_2Ebool_2EF
                @ ( c_2Erich__list_2ECOUNT__LIST @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) )
              @ ( c_2Emin_2E_3D @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Ewords_2Eword__bits @ A_27a @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2E_2B @ ( c_2Ebit_2ELOG2 @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ V1m ) @ ( c_2Ewords_2En2w @ A_27a @ c_2Enum_2E0 ) ) ) ) ) ) ).

thf(thm_2Eblast_2Eword__asr__bv__expand,axiom,
    ! [A_27a: $tType,V0w: tyop_2Efcp_2Ecart @ $o @ A_27a,V1m: tyop_2Efcp_2Ecart @ $o @ A_27a] :
      ( ( c_2Ewords_2Eword__asr__bv @ A_27a @ V0w @ V1m )
      = ( c_2Ebool_2ECOND @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Emin_2E_3D @ tyop_2Enum_2Enum @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Efcp_2EFCP @ $o @ A_27a @ ( c_2Ecombin_2EK @ $o @ tyop_2Enum_2Enum @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0w @ c_2Enum_2E0 ) ) )
        @ ( c_2Efcp_2EFCP @ $o @ A_27a
          @ ^ [V2k: tyop_2Enum_2Enum] :
              ( c_2Ebool_2E_5C_2F
              @ ( c_2Ebool_2E_2F_5C
                @ ( c_2Elist_2EFOLDL @ tyop_2Enum_2Enum @ $o
                  @ ^ [V3a: $o,V4j: tyop_2Enum_2Enum] : ( c_2Ebool_2E_5C_2F @ V3a @ ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Ewords_2Eword__bits @ A_27a @ ( c_2Ebit_2ELOG2 @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) @ c_2Enum_2E0 @ V1m ) @ ( c_2Ewords_2En2w @ A_27a @ V4j ) ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ ( c_2Ewords_2Eword__asr @ A_27a @ V0w @ V4j ) @ V2k ) ) )
                  @ c_2Ebool_2EF
                  @ ( c_2Erich__list_2ECOUNT__LIST @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) )
                @ ( c_2Emin_2E_3D @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Ewords_2Eword__bits @ A_27a @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ ( c_2Earithmetic_2E_2B @ ( c_2Ebit_2ELOG2 @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) @ V1m ) @ ( c_2Ewords_2En2w @ A_27a @ c_2Enum_2E0 ) ) )
              @ ( c_2Ebool_2E_2F_5C @ ( c_2Ewords_2Eword__lo @ A_27a @ ( c_2Ewords_2En2w @ A_27a @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) @ V1m ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0w @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ ( c_2Earithmetic_2ENUMERAL @ ( c_2Earithmetic_2EBIT1 @ c_2Earithmetic_2EZERO ) ) ) ) ) ) ) ) ) ).

thf(thm_2Eblast_2Eword__ror__bv__expand,axiom,
    ! [A_27a: $tType,V0w: tyop_2Efcp_2Ecart @ $o @ A_27a,V1m: tyop_2Efcp_2Ecart @ $o @ A_27a] :
      ( ( c_2Ewords_2Eword__ror__bv @ A_27a @ V0w @ V1m )
      = ( c_2Efcp_2EFCP @ $o @ A_27a
        @ ^ [V2k: tyop_2Enum_2Enum] :
            ( c_2Elist_2EFOLDL @ tyop_2Enum_2Enum @ $o
            @ ^ [V3a: $o,V4j: tyop_2Enum_2Enum] : ( c_2Ebool_2E_5C_2F @ V3a @ ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Ewords_2Eword__mod @ A_27a @ V1m @ ( c_2Ewords_2En2w @ A_27a @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) ) @ ( c_2Ewords_2En2w @ A_27a @ V4j ) ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0w @ ( c_2Earithmetic_2EMOD @ ( c_2Earithmetic_2E_2B @ V4j @ V2k ) @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) ) ) )
            @ c_2Ebool_2EF
            @ ( c_2Erich__list_2ECOUNT__LIST @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) ) ) ) ).

thf(thm_2Eblast_2Eword__rol__bv__expand,axiom,
    ! [A_27a: $tType,V0w: tyop_2Efcp_2Ecart @ $o @ A_27a,V1m: tyop_2Efcp_2Ecart @ $o @ A_27a] :
      ( ( c_2Ewords_2Eword__rol__bv @ A_27a @ V0w @ V1m )
      = ( c_2Efcp_2EFCP @ $o @ A_27a
        @ ^ [V2k: tyop_2Enum_2Enum] :
            ( c_2Elist_2EFOLDL @ tyop_2Enum_2Enum @ $o
            @ ^ [V3a: $o,V4j: tyop_2Enum_2Enum] : ( c_2Ebool_2E_5C_2F @ V3a @ ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Efcp_2Ecart @ $o @ A_27a ) @ ( c_2Ewords_2Eword__mod @ A_27a @ V1m @ ( c_2Ewords_2En2w @ A_27a @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) ) @ ( c_2Ewords_2En2w @ A_27a @ V4j ) ) @ ( c_2Efcp_2Efcp__index @ $o @ A_27a @ V0w @ ( c_2Earithmetic_2EMOD @ ( c_2Earithmetic_2E_2B @ V2k @ ( c_2Earithmetic_2EMOD @ ( c_2Earithmetic_2E_2D @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) @ V4j ) @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) ) @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) ) ) )
            @ c_2Ebool_2EF
            @ ( c_2Erich__list_2ECOUNT__LIST @ ( c_2Efcp_2Edimindex @ A_27a @ ( c_2Ebool_2Ethe__value @ A_27a ) ) ) ) ) ) ).

%------------------------------------------------------------------------------